Method and apparatus for processing satellite positioning system signals

ABSTRACT

Method and apparatus for processing a satellite positioning system (SPS) signal is described. In one example, a timing reference related to a SPS time of day is obtained from a wireless communication signal received by a mobile receiver. A bias in a local clock of the mobile receiver with respect to a frame timing of a repeating code broadcast by the satellite is compensated for in response to the timing reference. An expected code delay window is obtained for the SPS signal at the mobile receiver. The SPS signal is correlated with a reference code within the expected code delay window. In another example, an expected code delay window is obtained at the mobile receiver. The mobile receiver selects a sampling resolution in response to a size of the expected code delay window. The SPS signal is sampled at the selected sampling resolution and then correlated with a reference code.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional patent application of and claimspriority to co-pending U.S. patent application Ser. No. 10/838,517 filedMay 4, 2004. U.S. patent application Ser. No. 10/838,517 is acontinuation-in-part of the following U.S. patent applications:

(1) U.S. patent application Ser. No. 10/295,332, filed Nov. 15, 2002,which is a continuation of U.S. patent application Ser. No. 09/990,479,filed Nov. 21, 2001 (now U.S. Pat. No. 6,487,499), which is acontinuation of U.S. patent application Ser. No. 09/553,930, filed Apr.21, 2000 (now U.S. Pat. No. 6,453,237), which claims priority to U.S.provisional patent application No. 60/130,882, filed Apr. 23, 1999;(2) U.S. patent application Ser. No. 10/359,468, filed Feb. 5, 2003,which is a continuation of U.S. patent application Ser. No. 09/989,625,filed Nov. 20, 2001 (now U.S. Pat. No. 6,587,789), which is a divisionalof U.S. patent application Ser. No. 09/615,105, filed Jul. 13, 2000 (nowU.S. Pat. No. 6,411,892);(3) U.S. patent application Ser. No. 10/665,703, filed Sep. 19, 2003,which is a divisional of U.S. patent application Ser. No. 09/900,499,filed Jul. 6, 2001 (now U.S. Pat. No. 6,704,348), which is acontinuation-in-part of U.S. patent application Ser. No. 09/861,086,filed May 18, 2001 (now U.S. Pat. No. 6,606,346);(4) U.S. patent application Ser. No. 09/993,335, filed Nov. 6, 2001.Each of the aforementioned patent applications, patents, and provisionalapplication are incorporated by reference herein in their entireties.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to signal correlators for digital signalreceivers and, more particularly, to a method and apparatus processingsatellite positioning system signals in a mobile receiver.

2. Description of the Background Art

Global Positioning System (GPS) receivers use measurements from severalsatellites to compute position. GPS receivers normally determine theirposition by computing time delays between transmission and reception ofsignals transmitted from satellites and received by the receiver on ornear the surface of the earth. The time delays multiplied by the speedof light provide the distance from the receiver to each of thesatellites that are in view of the receiver.

More specifically, each GPS signal available for commercial use utilizesa direct sequence spreading signal defined by a unique pseudo-randomnoise (PN) code (referred to as the coarse acquisition (C/A) code)having a 1.023 MHz spread rate. Each PN code bi-phase modulates a1575.42 MHz carrier signal (referred to as the L1 carrier) and uniquelyidentifies a particular satellite. The PN code sequence length is 1023chips, corresponding to a one millisecond time period. One cycle of 1023chips is called a PN frame or epoch.

GPS receivers determine the time delays between transmission andreception of the signals by performing a series of correlations betweenthe incoming signals and internally generated PN signal sequences (alsoreferred to as reference codes or PN reference codes). For each incomingsignal, the correlation process can be lengthy, as both the time delayand the exact frequency of the signal are unknown. To test for thepresence of a signal, the receiver is tuned to a particular frequency,and the incoming signal is correlated with the PN reference code havinga particular code shift corresponding to a time delay. If no signal isdetected, the PN reference code is shifted and the correlation isrepeated for the next possible time delay. To find a given signal,receivers traditionally conduct a two dimensional search, checking eachdelay possibility over a range of frequencies. In addition, eachindividual correlation is typically performed over one or moremilliseconds in order to allow sufficient signal averaging todistinguish the signal from the noise. Because many thousands frequencyand time delay possibilities are checked, the overall acquisitionprocess can take tens of seconds.

The measured time delays produced by the correlation process arereferred to as “sub-millisecond pseudoranges”, since they are knownmodulo the 1 millisecond PN frame boundaries. By resolving the integernumber of milliseconds associated with each measured time delay, thenone has true, unambiguous pseudoranges. A set of four pseudorangestogether with knowledge of absolute times of transmission of the GPSsignals and satellite positions in relation to these absolute times issufficient to solve for the position of the GPS receiver. The absolutetimes of transmission (or reception) are needed in order to determinethe positions of the GPS satellites at the times of transmission andhence to compute the position of the GPS receiver.

Accordingly, each of the GPS satellites broadcasts a model of satelliteorbit and clock data known as the satellite navigation message. Thesatellite navigation message is a 50 bit-per-second (bps) data streamthat is modulo-2 added to the PN code with bit boundaries aligned withthe beginning of a PN frame. There are exactly 20 PN frames per data bitperiod (20 milliseconds). The satellite navigation message includessatellite-positioning data, known as “ephemeris” data, which identifiesthe satellites and their orbits, as well as absolute time information(also referred to herein as “GPS time” or “time-of-day”) associated withthe satellite signal. The absolute time information is in the form of asecond of the week signal, referred to as time-of-week (TOW). Thisabsolute time signal allows the receiver to unambiguously determine atime tag for when each received signal was transmitted by eachsatellite.

In some GPS applications, the signal strengths of the satellite signalsare so low that either the received signals cannot be processed, or thetime required to process the signals is excessive. Detecting attenuatedsignals requires each correlation to be performed over a relatively longperiod of time. For example integration may be performed over a fewseconds, as opposed to the 1-10 millisecond period used in traditionalGPS receivers. The two dimensional sequential search process employed bytraditional receivers becomes impractical at such long integrationtimes, because the overall search time increases by a factor of 100 ormore. Moreover, the pseudoranges measured by the process may beinaccurate, since the receiver performs the correlations at a coarsespacing, such as one-half chip, for example.

To accelerate the search process, GPS designers add additionalcorrelators to the receiver so that multiple time delay possibilitiescan be checked simultaneously. Typically, each correlator that is addedrequires a separate code mixer and signal accumulator. For a givensensitivity level, this decreases search times in proportion to thenumber of correlators. To achieve the sensitivity and acquisition timedemanded in low signal-to-noise ratio environments, the design mighthave to incorporate many thousands of correlators. This addition istypically prohibitively complex and expensive for a consumer classdevice.

Therefore, there exists a need in the art for improved, low costprocessing of satellite positioning system signals in a mobile receiver.

SUMMARY OF THE INVENTION

A method and apparatus for processing a satellite positioning systemsignal is described. In one embodiment, a timing reference related to asatellite positioning system time of day is obtained from a wirelesscommunication signal received by a mobile receiver. A bias in a localclock of the mobile receiver with respect to a frame timing of arepeating code broadcast by the satellite is compensated for in responseto the timing reference. An expected code delay window is obtained forthe satellite positioning system signal at the mobile receiver. Thesatellite positioning system signal is correlated with a reference codewithin the expected code delay window. The timing reference allows themobile receiver to substantially compensate for the local clock biasassociated with correlator circuitry used to measure code delays tosatellite positioning signals. In one embodiment, the timing referenceis combined with expected pseudorange data to determine the expectedcode delay window over which the satellite signals are correlated. Inanother embodiment, the timing reference is further compensated toaccount for the distance of the mobile receiver from a wireless basestation.

In another embodiment, an expected code delay window is obtained at themobile receiver. The mobile receiver selects a sampling resolution inresponse to a size of the expected code delay window. The satellitepositioning system signal is sampled at the selected samplingresolution. The sampled satellite positioning system signal iscorrelated with a reference code. In one embodiment, a higher samplingresolution is selected when the size of the code delay window satisfiesa threshold, which enables more accurate code delay measurements.

BRIEF DESCRIPTION OF DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 is a block diagram depicting an exemplary embodiment of aposition location system;

FIG. 2 is a block diagram depicting an exemplary embodiment of a mobilereceiver constructed in accordance with the invention;

FIG. 3 is a block diagram depicting an exemplary embodiment of a GPSreceiver constructed in accordance with the invention;

FIG. 4 is a block diagram depicting an exemplary embodiment ofcorrelation circuitry constructed in accordance with the invention;

FIG. 5 is a graph illustrating an exemplary embodiment of a correlationresponse for an entire PN frame; and

FIG. 6 is a flow diagram depicting an exemplary embodiment of a methodfor processing a satellite positioning system signal in accordance withthe invention.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION OF THE INVENTION

A method and apparatus for processing a satellite positioning systemsignal in a mobile receiver is described. Those skilled in the art willappreciate that the invention may be used with various types of mobileor wireless devices that are “location-enabled,” such as cellulartelephones, pagers, laptop computers, personal digital assistants(PDAs), and like type wireless devices known in the art. Generally, alocation-enabled mobile device is facilitated by including in the devicethe capability of processing satellite positioning system (SPS)satellite signals.

FIG. 1 is a block diagram depicting an exemplary embodiment of aposition location system 100. The system 100 comprises a mobile receiver102 in communication with a server 108 via a wireless communicationnetwork 110. The mobile receiver 102 is configured for communicationwith the server 108 over a communication link between an antenna 118 anda base station 109 of the wireless communication network 110. Thewireless communication network 110 may comprise a cellular communicationnetwork having a plurality of base stations or cell sites, including thebase station 109. The server 108 may be disposed in a serving mobilelocation center (SMLC) of the wireless communication network 110. Themobile receiver 102 is configured to receive satellite signals from aplurality of satellites 112 via an antenna 116. The mobile receiver 102processes the received satellite signals to produce satellitemeasurement data (e.g., pseudoranges, Doppler measurements).

Satellite navigation data, such as ephemeris for at least the satellites112, may be collected by a network of tracking stations (“referencenetwork 114”). The reference network 114 may include several trackingstations that collect satellite navigation data from all the satellitesin the constellation, or a few tracking stations, or a single trackingstation that only collects satellite navigation data for a particularregion of the world. An exemplary system for collecting and distributingephemeris is described in commonly-assigned U.S. Pat. No. 6,411,892,issued Jun. 25, 2002, which is incorporated by reference herein in itsentirety. The reference network 114 may provide the collected satellitenavigation data to the server 108. Upon request, the server 108 maytransmit satellite trajectory data (e.g., ephemeris, almanac, or someother satellite trajectory model) to the mobile receiver 102.Alternatively, the mobile receiver 102 may receive satellite trajectorydata (e.g., ephemeris, almanac, or some other satellite trajectorymodel) via a communications network 115 (e.g., a computer network, suchas the Internet). Notably, the satellite trajectory data may comprise along term satellite trajectory model, as described in commonly-assignedU.S. Pat. No. 6,560,534, issued May 6, 2003, which is incorporated byreference herein in its entirety.

In one embodiment, the mobile receiver 102 sends the satellitemeasurement data to the server 108 along with a time-tag. The server 108receives satellite navigation data for at least the satellites 112 fromthe reference network 114. The server 108 locates position of the mobilereceiver 102 using the satellite measurement data and the satellitenavigation data (referred to as the mobile station assisted or“MS-assisted” configuration). In another embodiment, the mobile receiver102 obtains satellite trajectory data from either the server 108 or thecommunications network 115. The mobile receiver 102 locates its ownposition using the satellite measurement data and the trajectory data(referred to as the mobile station based or “MS-based” configuration).In yet another embodiment, the mobile receiver 102 may locate its ownposition by decoding satellite navigation message from the satellitesignals, rather than receiving the satellite trajectory data from anexternal source (referred to as the autonomous configuration).

In any configuration, the mobile receiver 102 may use satellite signalacquisition assistance data (“acquisition assistance data”) to assist inacquiring satellite signals and obtaining satellite measurement data.Acquisition assistance data may be computed using satellite trajectorydata (e.g., ephemeris or other satellite trajectory model) and anapproximate position of the mobile receiver 102. An approximate positionof the mobile receiver 102 may be obtained using various positionestimation techniques known in the art, including use of transitionsbetween base stations of the wireless communication network 110, use ofa last known location of the mobile receiver 102, use of a location ofthe base station 109 in communication with the mobile receiver 102, useof a location of the wireless communication network 110 as identified bya network ID, or use of a location of a cell site of the wirelesscommunication network 110 in which the mobile receiver 102 is operatingas identified by a cell ID.

The acquisition assistance data includes expected pseudorange data. Inone embodiment of the invention, the acquisition assistance dataincludes expected pseudoranges from the satellites 112 to an assumedposition of the mobile receiver 102 (approximate position) at an assumedtime-of-day. The expected pseudoranges may be computed using thesatellite trajectory data. The details of such computations are wellknown in the art and, for purposes of clarity, are not repeated herein.The expected pseudoranges may be computed by the server 108 andtransmitted to the mobile receiver 102 upon request. Alternatively, ifthe mobile receiver 102 has obtained satellite trajectory data, themobile receiver 102 may compute the expected pseudoranges.

In one embodiment, the expected pseudoranges are derived from a modelthat is valid over specified period of time (“pseudorange model”). Themobile receiver 102 may apply a time-of-day to the pseudorange model toextract appropriate expected pseudorange parameters. Exemplary processesfor forming pseudorange models as acquisition assistance data aredescribed in commonly-assigned U.S. Pat. No. 6,453,237, issued Sep. 17,2002, which is incorporated by reference herein in its entirety. Apseudorange model may be formed by the server 108 and transmitted to themobile receiver 102 upon request. Alternatively, if the mobile receiver102 has obtained satellite trajectory data, the mobile receiver 102 mayform the pseudorange model.

In one embodiment, the acquisition assistance data may be formatted asdescribed in ETSI TS 101 527 (3GPP TS 4.31), which is shown below inTable 1. Notably, the acquisition assistance data defined in 3GPP TS4.31 may include a satellite vehicle identifier (SVID), zeroth and firstorder Doppler terms, a Doppler uncertainty, an expected code phase(e.g., sub-millisecond pseudorange), an integer code phase, a code phasesearch window, and expected azimuth and elevation data. The range ofpossible values and associated resolutions are shown for each of theparameters.

TABLE 1 Parameter Range Resolution SVID/PRNID 1-64 (0-63) n/a Doppler(0^(th) order term) −5,120 Hz to 5,117.5 Hz 2.5 Hz Doppler (1^(st) orderterm) −1-0.5 n/a Doppler Uncertainty 12.5 Hz-200 Hz n/a [2^(−n)(200) Hz,n = 0-4] Code Phase 0-1022 chips 1 chip Integer Code Phase 0-19 1 C/Aperiod GPS Bit number 0-3 n/a Code Phase Search 1-192 chips n/a WindowAzimuth 0-348.75 deg 11.25 deg Elevation 0-78.75 deg 11.25 deg

The server 108 illustratively comprises an input/output (I/O) interface104, a central processing unit (CPU) 124, support circuits 106, and amemory 120. The CPU 124 is coupled to the memory 120 and the supportcircuits 106. The memory 120 may be random access memory, read onlymemory, removable storage, hard disc storage, or any combination of suchmemory devices. The support circuits 106 include conventional cache,power supplies, clock circuits, data registers, I/O interfaces, and thelike to facilitate operation of the server 108. The I/O interface 104 isconfigured to receive satellite navigation data from the referencenetwork 114. The I/O interface 104 is also configured for communicationwith the wireless communication network 110. Various processes andmethods described herein may be implemented using software 122 stored inthe memory 120 for execution by the CPU 124. Alternatively, the server108 may implement such processes and methods in hardware or acombination of software and hardware, including any number of processorsindependently executing various programs and dedicated hardware, such asapplication specific integrated circuits (ASICs), field programmablegate arrays (FPGAs), and the like.

The base station 109 is configured to broadcast a time synchronizationsignal to enable the mobile receiver 102 to synchronize to the basestation 109 as a first step in establishing communication with thewireless communication network 110. The time synchronization signalincludes a timing message that is related to GPS time. The timingmessage may be related absolutely to GPS time (e.g., the timing messagemay be a system time message) or may be related to a sub-millisecondportion of GPS time (e.g., the timing message may be a frame number andinformation relating the frame number to GPS time). In either case,information from the time synchronization signal may be used toestablish a timing reference for the mobile receiver 102.

For example, the base station 109 may employ a separate synchronizationchannel for broadcasting a time message that contains the system timerelative to timing markers in the synchronization channel. The systemtime may be equivalent to GPS time or may have some known relationshipto GPS time. The mobile receiver 102 may derive the system time from thetime synchronization signal and determine a timing reference related toGPS time. The timing reference may be used to calibrate clock circuitswithin the mobile receiver 102, or may be used to establish a timeoffset between such clock circuits and GPS time. In one embodiment, thetiming reference is further compensated to account for the distance ofthe mobile receiver 102 from the base station 109. This compensationmakes use of a measurement of the round trip signal delay between basestation 109 and the mobile receiver 102. In this manner, the mobilereceiver 102 may be synchronized to GPS time.

An exemplary cellular communication network that employs such a timingsynchronization signal is the North American CDMA (code divisionmultiple access) standard (IS-95). The IS-95 system employs a separate26.67 millisecond synchronization channel that is spread using a PNsequence of 215 chips. Additionally, the synchronization channel ismodulated with a particular Walsh code, allowing it to be separated frompaging and traffic channels using different Walsh codes. Thesynchronization channel carries a message containing a time of dayrelative to the frame boundaries of the synchronization channel (“CDMAsystem time”). The CDMA system time is precisely related to GPS time. Inone embodiment, to accurately determine GPS time from the CDMA systemtime, the CDMA time obtained from the synchronization channel isadjusted to remove an offset that is added by the delay in thetransmission of the CDMA system time from the base station 109 to themobile receiver 102. This adjustment is made by measuring the round-tripdelay for a signal being transmitted from the mobile receiver 102 to thebase station 109 and back. The synchronization channel structure for theIS-95 CDMA system is well known in the art. For purposes of clarity byexample, aspects of the invention are described with respect to an IS-95CDMA system. It is to be understood, however, that the invention may beused with other types of synchronized cellular communication networksthat provide time synchronization signals, such as CDMA-2000, W-CDMA,and the like.

The present invention may also be used with non-synchronized cellularcommunication systems that include a mechanism for relating anon-synchronized system time to GPS time, such as global system formobile communication (GSM), universal mobile telecommunications system(UMTS), North American time division multiple access (TDMA) (e.g.,IS-136), and personal digital cellular (PDC) networks. For example, in aGSM system, the time synchronization signal comprises a synchronizationburst periodically transmitted by the base station 109 and a timingmessage that provides a GSM time stamp associated with thesynchronization burst. In some GSM networks, GSM time is notsynchronized to GPS time. However, such networks may include locationmeasurement units (LMUs). As is well known in the art, an LMU includes aGPS receiver, which is used to receive and decode time information (TOW)from the satellites in view of one or more base stations. The LMU thencomputes an offset value between GPS time and the time as known by thebase station(s) that are near the LMU (“air-interface timing”). Theoffset is provided to the base station(s) for use in relating theair-interface timing to GPS time. Notably, the base station 109 maytransmit an offset between its air-interface timing and GPS time to themobile receiver 102. For example, the offset may be supplied to themobile receiver 102 as part of an acquisition assistance data exchangeas defined in 3GPP TS 4.31.

As described below, the invention may synchronize to the frame timing ofthe PN codes broadcast by the GPS satellites using the timing referencederived from a time synchronization signal of a wireless network. Thisallows the mobile receiver 102 to substantially compensate for the localclock bias associated with the correlator circuitry used to measure thecode delays. Then, using expected pseudorange data, the mobile receiver102 may derive an expected code delay window over which the satellitesignals may be correlated. In this manner, the invention substantiallyreduces the time required to detect the satellite signals, as well asincreases the accuracy of the satellite measurement data.

FIG. 2 is a block diagram depicting an exemplary embodiment of themobile receiver 102 of FIG. 1. The mobile receiver 102 illustrativelycomprises a GPS receiver 202, a wireless transceiver 204, a processor206, a memory 210, and support circuits 208. The GPS receiver 202processes satellite signals received by the antenna 116. An exemplaryembodiment of the GPS receiver 202 is described below with respect toFIG. 3. The wireless transceiver 204 processes a wireless signal (e.g.,a cellular signal) received by the antenna 118. The GPS receiver 202 andthe wireless transceiver 204 are controlled by the processor 206. Themobile receiver 102 may include a modem 212 or other type ofcommunications transceiver for receiving data (e.g., satellitetrajectory data) from a separate communications link, such as theInternet.

The processor 206 may comprise a microprocessor, instruction-setprocessor (e.g., a microcontroller), or like type processing elementknown in the art. The processor 206 is coupled to the memory 210 and thesupport circuits 208. The memory 210 may be random access memory, readonly memory, removable storage, hard disc storage, or any combination ofsuch memory devices. The support circuits 208 include conventionalcache, power supplies, clock circuits, data registers, I/O interfaces,and the like to facilitate operation of the mobile receiver 102. Variousprocesses and methods described herein may be implemented using software211 stored in the memory 210 for execution by the processor 206.Alternatively, the mobile receiver 102 may implement such processes andmethods in hardware or a combination of software and hardware, includingany number of processors independently executing various programs anddedicated hardware, such as ASICs, FPGAs, and the like.

Notably, in an IS-95 CDMA compatible environment, the wirelesstransceiver 204 detects a pilot channel of a nearby base station (e.g.,the base station 109 of FIG. 1) and then proceeds to decode asynchronization channel broadcast by the base station. The wirelesstransceiver 204 achieves synchronization to the framing of thesynchronization channel and receives a time message containing a time ofday relative to the frame boundaries. Since the time of day derived fromthe synchronization channel is related to GPS time used by the GPSsatellites, the processor 206 may derive a timing reference related toGPS time. The timing reference may be further compensated for theround-trip delay of a signal communicated between the wirelesstransceiver 204 and the base station 109. The processor 206 provides thetiming reference to the GPS receiver 202 as a reference signal. In a GSMcompatible environment, the mobile receiver 102 receives a time offsetfrom the base station 109 that relates the air-interface timing of thebase station 109 to GPS time. The wireless transceiver 204 achievessynchronization to the framing of the GSM signal and receives a GSM timemessage containing a time of day relative to the frame boundaries. Theprocessor 206 derives a timing reference related to GPS time using thetime offset between the air-interface timing and GPS time. The processor206 provides the timing reference to the GPS receiver 202 as a referencesignal. In either the CDMA or GSM environments, the GPS receiver 202 mayuse the reference signal to precisely track GPS time, typically towithin a few microseconds.

FIG. 3 is a block diagram depicting an exemplary embodiment of the GPSreceiver 202 of FIG. 2. The GPS receiver 202 illustratively comprises afront end 302, an analog-to-digital (A/D) converter 304, a receiverinterface 205, and a set of processing channels 306 ₁ through 306 _(N)(collectively referred to as processing channels 306), where N is aninteger. For purposes of clarity by example, only the processing channel306 ₁ is shown in detail. Those skilled in the art will appreciate thatthe processing channels 306 ₂ through 306 _(N) are identical to theprocessing channel 306 ₁.

GPS signals are received by the antenna 116. The front end 302 filters,amplifies, and frequency shifts the GPS signals in a well-known mannerfor digitization by the A/D converter 304. Outputs of the A/D converter304 are respectively coupled to each of the processing channels 306. Thereceiver interface 305 includes a bus configured to communicate withexternal circuitry (e.g., the processor 206), and a bus configured tocommunicate with each of the processing channels 306.

Each of the processing channels 306 comprises a tuner 308, a carriernumerically controlled oscillator (NCO) 310, a decimation circuit 312, acode NCO 314, correlator circuitry 316, a PN code generator 318,accumulation circuitry 320, correlation results memory 322, and controllogic 324. Each of the processing channels 306 may be used to process asignal from a particular satellite. The tuner 308 is driven by thecarrier NCO 310 to digitally tune a particular satellite signal. Thetuner 308 may serve two purposes. First, the tuner 308 may remove anyintermediate frequency component remaining after processing by the frontend 302. Second, the tuner 308 may compensate for any frequency shiftresulting from satellite motion, user motion, and reference frequencyerrors. The tuner 308 outputs baseband signal data comprises an in-phasecomponent (I) and a quadrature component (Q).

The decimation circuit 312 processes the I and Q data from the tuner 308to produce a series of complex signal samples with I and Q components inaccordance with a sampling rate determined by the code NCO 314. Ingeneral, the sampling rate of the decimation circuit 312 may be selectedto produce P samples per chip of the satellite signal PN code, where Pis an integer greater than zero. In this manner, the GPS receiver 202may operate in multiple modes of resolution. For example, in a standardresolution mode, the decimation circuit 312 may produce digital signalsamples have two samples per PN code chip (i.e., the samples are spacedat ½ of a PN code chip or P=2). In a high-resolution mode, thedecimation circuit 312 may produce digital signal samples having fivesamples per PN code chip (i.e., the samples are spaced at ⅕ of a PN codechip or P=5). Those skilled in the art will appreciate that other valuesfor the sample spacing may be employed and that the GPS receiver 202 mayoperate in more than two modes of resolution.

The correlator circuitry 316 processes the I and Q samples from thedecimation circuit 312. The correlator circuitry 316 correlates the Iand Q signals with an appropriate PN code generated by the PN codegenerator 318 for the particular satellite signal. An exemplaryembodiment of the correlator circuitry 316 is described below withrespect to FIG. 4. The I and Q correlation results are accumulated withother I and Q correlation results by the accumulation circuitry 320 andare stored in the correlation results memory 322. The accumulationprocess is referred to as signal integration and is used to improvesignal-to-noise ratio of the correlation results. Notably, theaccumulation circuitry 320 may accumulate I and Q correlation resultsfor a time period associated with one or more epochs of the PN code. Forexample, the I and Q correlation results may be accumulated over a onemillisecond interval (i.e., one PN code epoch) or over a multiplemillisecond interval (e.g., 10 PN code epochs or 10 milliseconds). Thisprocess is referred to as coherent integration and the associated timeperiod is referred to as a coherent integration interval.

The coherent integration interval is limited by several factors,including uncompensated Doppler shift, 180 degree phase transitionscaused by the navigation data bits, and phase shifts induced by motionof the mobile receiver 102. These factors introduce slow, but seeminglyrandom phase variations into the signals. Over many tens ofmilliseconds, these phase changes cause destructive interference thatdefeats the purpose of coherent integration. Thus, to achieve longaveraging intervals, the accumulation circuitry 320 may perform asecondary step of magnitude accumulation (also referred to asnon-coherent integration).

The carrier NCO 310, the code NCO 314, the correlator circuitry 316, andthe accumulation circuitry 320 are controlled by the control logic 324.The control logic 324 may receive various configuration parameters viathe receiver and channel interfaces 305 and 326 (e.g., parametersgenerated by a processing device, such as the processor 206 in themobile receiver 102). For example, the configuration parameters mayinclude one or more of the desired tuning frequency of the carrier NCO310, the desired mode of resolution for the decimation circuit 312(e.g., standard resolution mode or high-resolution mode), the desiredcoherent and non-coherent integration periods, and the desired timingreference and code delay window data for the correlator circuitry.Alternatively, one or more of such configuration parameters may begenerated by the control logic 324. The control logic 324 may implementthe desired mode of resolution through control of the code NCO 314. Fora detailed understanding of the GPS receiver 202 and the componentsdiscussed above, the reader is referred to commonly-assigned U.S. Pat.No. 6,704,348, issued Mar. 9, 2004, which is incorporated by referenceherein in its entirety.

FIG. 4 is a block diagram depicting an exemplary embodiment of thecorrelator circuitry 316 of FIG. 3. In one embodiment, the correlatorcircuitry 316 comprises an adder 404, a correlator clock 406 (alsoreferred to as a “local clock”), a code delay control circuit 405, async tracking circuit 407, and a set of correlators 402 ₁ through 402_(K) (collectively referred to as correlators 402), where K is aninteger greater than zero. Each of the correlators 402 is configured toreceive the I and Q samples from the decimation circuit 312. Each of thecorrelators 402 is configured to produce a correlation between the inputI and Q signals and a PN reference code. The PN reference code issuccessively delayed in time amongst the correlators 402 (i.e., theincoming samples are correlated with K replicas of the PN code). Thecode delay of the PN code for each of the correlators 402 is controlledby the code delay control circuit 405. The code delay control circuit405 controls the code delay for each of the correlators 402 using aclock signal from the correlator clock 406 and expected pseudorangedata.

In one embodiment, the sync tracking circuit 407 receives a referencesignal that provides a timing reference related to GPS time (e.g., areference signal derived from a time synchronization signal of acellular network). As described above, the reference signal may be usedto precisely track GPS time, typically to within a few microseconds. Thecorrelator clock 406 may comprise a free-running (i.e.,non-synchronized) clock. The sync tracking circuit 407 keeps track ofthe offset (error) between the reference signal and the timing of thecorrelator clock 406. The sync tracking circuit 407 supplies an offsetsignal to the code delay control circuit 405. In this manner, the codedelay control circuit 405 can account for any error in the timing of thecorrelator clock 406. In another embodiment, the correlator clock 406may comprise a steerable clock circuit. Rather than employing the synctracking circuit 407, the timing of the correlator clock 406 may bedirectly controlled using the reference signal. In general, a bias inthe correlator clock 406 with respect to the frame timing of thesatellite PN codes is compensated for using the reference signal.

With the compensation of local clock bias, the code delay controlcircuit 405 may correctly center an expected code search window in orderto detect the incoming signal. The expected code search window is formedusing the expected pseudorange data. Notably, a sub-millisecond portionof the expected pseudorange data relates to the expected code phaseoffset at which the PN reference code and the incoming signal will bealigned. As is well known in the art, the particular one of thecorrelators 402 having the input signal and PN reference code alignedwill have a high correlation output with respect to all othercorrelators 402. The adder 404 sums I and Q correlation results, whichare supplied to the accumulation circuitry 320.

FIG. 5 is a graph 500 illustrating an exemplary correlation response 501over a PN frame. An axis 502 represent code chips, and an axis 504represents signal strength. Points on the chip axis 502 are spaced at aninterval equal to the PN code chip length divided by the number ofsamples per chip (P). The correlation response 501 represents a sequenceof correlation points 506 at every possible time delay (also referred toas a convolution). The number of correlation points 506 in thecorrelation response 501 is a function of the number of samples perchip. For example, if P=2, then the correlation response 501 includes2046 correlation points. As is apparent from the graph 500, as thesamples per chip increase (i.e., the resolution increases), the numberof correlation points 506 in the correlation response 501 increases(e.g., by a factor of 1023 for every integer increase in P).

The correlation response 501 illustratively includes a peak 508 at atime delay 510. The time delay 510 corresponds to the time delay of thePN reference code that results in the greatest alignment with theincoming signal samples. As is apparent from the graph 500, the moresamples per chip (i.e., the higher the resolution), the more accuratethe time delay measurement becomes. For example, a resolution of twosamples per chip provides a sample spacing 509 of approximately 500nanoseconds, which corresponds to a range difference of 150 meters. Aresolution of five samples per chip provides a sample spacing 509 ofapproximately 200 nanoseconds, which corresponds to a range differenceof 60 meters. Thus, it is clear that an increase in resolution providesfor a more accurate delay measurement and hence a more accuratepseudorange measurement.

Referring to FIGS. 4 and 5, to detect the peak 508, the correlators 402must process a sufficient number of code delays in the vicinity of thepeak 508, illustrated by the code delay window 512. For example, thecorrelators 402 may compute a full convolution such that all possiblecode delays are processed. If there are two samples per chip, and a fullconvolution is to be computed at once, then 2046 correlators arerequired for each of the I and Q signals (4092 total correlators). Ifthe sample spacing is increased to five samples per chip, then 5,115correlators are required for each of the I and Q signals (10,230 totalcorrelators) to compute a full convolution at once. Power consumptionand circuit size restrictions may make a correlator circuit having10,230 or even 4092 correlators per channel impractical.

If the code delay window 512 is known before correlation begins, thenthe correlators 402 may compute only the correlations within the codedelay window 512. As described below, the invention advantageouslyemploys an expected code delay window and a timing reference related toGPS time to time the correlation process such that the correlators 402compute only the correlations within the code delay window 512. In thismanner, since only a subset of the full convolution is computed at oncefor each processed code epoch, either the number of correlators 402 maybe reduced or the sampling resolution may be increased, as desired,depending upon the accuracy, power consumption, and circuit sizeconstraints.

FIG. 6 is a flow diagram depicting an exemplary embodiment of a method600 for processing a satellite positioning system signal in accordancewith the invention. The method 600 begins at step 602. At step 604,external aiding data is received at the mobile receiver 102. Theexternal aiding data includes information that may be used to derive atiming reference related to GPS time and expected code delay windows forsatellites of interest. For example, the external aiding data mayinclude a time synchronization signal broadcast by a base station of awireless communication network, as well as acquisition assistance dataprovided by an external source (e.g., a server). Alternatively, theexternal aiding data may include a time synchronization signal broadcastby a base station of a wireless communication network, as well assatellite trajectory data (e.g., ephemeris) provided by either anexternal source or by the satellites. As described above, the satellitetrajectory data may be used to compute acquisition assistance data givenan estimated position of the mobile receiver. Whether the acquisitiondata is computed or received from an external source, the acquisitionassistance data includes expected pseudorange data (e.g., expectedpseudoranges, expected code phases, pseudorange models, and the like).The expected pseudorange data may be used to establish expected codedelay windows for satellite signals of interest.

At optional step 606, the mobile receiver 102 may select a resolutionmode. In one embodiment, the mobile receiver 102 may select a resolutionmode for a particular channel of the GPS receiver based on the size ofan expected code delay window with respect to a predefined threshold.The predefined threshold may be determined in accordance with hardwarelimitations (e.g., the number of correlators per channel in the GPSreceiver). The resolution mode may be selected on a channel-by-channelbasis. For example, if a given expected code delay window is less than110 chips, than a particular channel in the GPS receiver may beconfigured in a high-resolution mode (e.g., 110 chips at five I samplesand five Q samples per chip). Otherwise, the particular channel may beconfigured in a normal resolution mode.

At step 608, satellite signals are received and sampled by the mobilereceiver 102. The satellite signals are sampled at a sampling resolutionset by the mobile receiver 102. At step 610, a timing reference isderived from a time synchronization signal in the external aiding data.At step 612, a correlator clock bias within the mobile receiver 102 iscompensated for using the timing reference. Without the timingreference, the timing of the correlator circuitry within the mobilereceiver 102 is arbitrary relative to the timing of the satellite PNcodes, which yields an unknown local clock bias. Since the timingreference is related to GPS time, the correlator clock bias may beestimated or the correlator clock may be substantially synchronized tothe frame timing of the satellite PN codes. In this manner, anuncertainty component of the measured time delay caused by an unknownrelative timing of the correlator circuitry is substantially reduced oreliminated. It is to be understood, however, that the timing referencemay not be completely accurate. To achieve the best accuracy, the delaybetween the mobile receiver 102 and the base station 109 may be takeninto account, as discussed above (e.g., a round-trip travel time betweenthe mobile receiver 102 and the base station 109 may be measured whenderiving the timing reference). A remaining uncertainty component of themeasured time delay is related to the unknown pseudorange and any errorin the timing reference with respect to GPS time.

At step 614, expected code delay windows for satellites of interest arederived from the external aiding data. The expected code delay windowsaccount for the uncertainty component of the measured time delay relatedto the unknown pseudorange. Notably, the expected code delay window isbased on an expected pseudorange for each satellite of interest. At step616, each satellite signal of interest is correlated with theappropriate PN reference code within the appropriate expected code delaywindow derived at step 614. Since the correlator clock bias iscompensated, and expected code delay windows have be determined, themobile receiver 102 may correlate over substantially less than a fullepoch of the PN code. As discussed above, this allows the mobilereceiver 102 to employ less correlators and/or increase the samplingresolution. At step 618, the correlation results produced at step 616may be analyzed to measure sub-millisecond pseudoranges to thesatellites of interest. The sub-millisecond pseudoranges may be used tolocate position of the mobile receiver 102 in a well known manner. Themethod 600 ends at step 620.

In the preceding discussion, the invention has been described withreference to application upon the United States Global PositioningSystem (GPS). It should be evident, however, that these methods areequally applicable to similar satellite systems, and in particular, theRussian GLONASS system, the European GALILEO system, combinations ofthese systems with one another, and combinations of these systems andother satellites providing similar signals, such as the wide areaaugmentation system (WAAS) and SBAS that provide GPS-like signals. Theterm “GPS” used herein includes such alternative satellite positioningsystems, including the Russian GLONASS system, the European GALILEOsystem, the WAAS system, and the SBAS system, as well as combinationsthereof.

While the foregoing is directed to illustrative embodiments of thepresent invention, other and further embodiments of the invention may bedevised without departing from the basic scope thereof, and the scopethereof is determined by the claims that follow.

1. A method of processing a satellite positioning system signal receivedby a mobile receiver from a satellite, comprising: obtaining a timingreference related to a satellite positioning system time of day from awireless communication signal received at said mobile receiver;compensating for a bias in a local clock of said mobile receiver withrespect to a frame timing of a repeating code broadcast by saidsatellite in response to said timing reference; obtaining an expectedcode delay window for said satellite positioning system signal at saidmobile receiver; and correlating said satellite positioning systemsignal with a reference code within said expected code delay window. 2.The method of claim 1, wherein said step of obtaining said expected codedelay window comprises: receiving acquisition assistance data from aserver in communication with the mobile receiver; and deriving saidexpected code delay window in response to said acquisition assistancedata.
 3. The method of claim 1, wherein further comprising: determininga delay between said mobile receiver and a base station in communicationwith said mobile receiver; adjusting said timing reference in responseto said delay.
 4. The method of claim 2, wherein said assistance datacomprises expected pseudorange data and said expected code delay windowis generated using said expected pseudorange data.
 5. The method ofclaim 1, wherein said step of obtaining said expected code delay windowcomprises: obtaining satellite trajectory data at said mobile receiver;obtaining an estimated location of said mobile receiver; and computingsaid code delay window in response to said satellite trajectory data andsaid estimated location.
 6. The method of claim 5, wherein saidsatellite trajectory data comprises ephemeris.
 7. The method of claim 5,wherein said satellite trajectory data comprises almanac data.
 8. Themethod of claim 5, wherein said satellite trajectory data is receivedfrom a server in communication with said mobile receiver.
 9. The methodof claim 1, wherein said expected code delay window spans only a portionof said repeating code.
 10. The method of claim 1, further comprising:selecting a sampling resolution in response to said expected code delaywindow; and sampling said satellite positioning system signal at saidselected sampling resolution prior to correlation step.
 11. The methodof claim 1, further comprising: repeating said steps of obtaining anexpected code delay window and correlating for at least one additionalsatellite positioning system signal received by said mobile receiverfrom a respective at least one additional satellite.
 12. The method ofclaim 1, further comprising: computing a pseudorange from said mobilereceiver to said satellite in response to results of said correlation.13. The method of claim 1, wherein said step of compensating comprises:comparing said timing reference with a timing of said local clock toestimate said bias.
 14. The method of claim 1, wherein said step ofcompensating comprises: synchronizing a timing of said local clock tosaid timing reference.
 15. A method of processing a satellitepositioning system signal received by a mobile receiver from asatellite, comprising: obtaining an expected code delay window at saidmobile receiver; selecting a sampling resolution in response to a sizeof said expected code delay window; sampling said satellite positioningsystem signal at said selected sampling resolution; and correlating saidsampled satellite positioning system signal with a reference code. 16.The method of claim 15, wherein said step of selecting a samplingresolution comprises: selecting a first sampling resolution in responseto said size failing a threshold; and selecting a second samplingresolution in response to said size satisfying said threshold.
 17. Themethod of claim 16, wherein said second sampling resolution is higherthan said first sampling resolution.
 18. The method of claim 15, furthercomprising: obtaining a timing reference related to a satellitepositioning system time-of-day from a time synchronization signalbroadcast by a base station in communication with said mobile receiver;and compensating for a bias in a local clock of said mobile receiverwith respect to a frame timing of a repeating code broadcast by saidsatellite in response to said timing reference.
 19. The method of claim18, further comprising: obtaining acquisition assistance data; andderiving said expected code delay window in response to said acquisitionassistance data.
 20. The method of claim 19, wherein said sampledsatellite positioning system signal is correlated within said expectedcode delay window.
 21. The method of claim 20, wherein said expectedcode delay window spans only a portion of said repeating code.
 22. Themethod of claim 19, wherein said acquisition assistance data comprisesexpected pseudorange data and said expected code delay window isgenerated using said expected pseudorange data.
 23. The method of claim18, further comprising: obtaining satellite trajectory data; formingacquisition assistance data within said mobile receiver using saidsatellite trajectory data; and deriving said expected code delay windowin response to said acquisition assistance data.
 24. The method of claim23, wherein said sampled satellite positioning system signal iscorrelated within said expected code delay window.
 25. The method ofclaim 24, wherein said expected code delay window spans only a portionof said repeating code.
 26. The method of claim 24, wherein saidacquisition assistance data comprises expected pseudorange data and saidexpected code delay window is generated using said expected pseudorangedata.
 27. The method of claim 15, further comprising: repeating saidsteps of obtaining, selecting, sampling, and correlating for at leastone additional satellite positioning system signal received at saidmobile receiver from a respective at least one additional satellite. 28.The method of claim 15, further comprising: computing a pseudorange fromsaid mobile receiver to said satellite in response to results of saidcorrelation.
 29. A mobile receiver, comprising: a wireless transceiverfor receiving a wireless communication signal from a wireless network; asatellite signal receiver for receiving satellite positioning systemsignal broadcast by a satellite, said satellite signal receiver havingcorrelator circuitry and a local clock; and a processor for obtaining anexpected code delay window for said satellite positioning system signal,obtaining a timing reference related to a satellite positioning systemtime of day from said wireless communication signal, and providing saidtiming reference to said satellite signal receiver to compensate for abias in said local clock with respect to a frame timing of a repeatingcode broadcast by said satellite in response to said timing reference;wherein said correlator circuitry is configured to correlate saidsatellite positioning system signal with a reference code within saidexpected code delay window using said local clock.